


                        PPPPPP  VV  VV  VV  VV
                        PP  PP  VV  VV  VV  VV
                        PPPPPP  VV  VV  VV  VV
                        PP      VV  VV  VV  VV
                        PP        VV      VV

                        PSX     VRAM    VIEWER

                                v1.0



Overview

PVV is a program to view and save the contents of the Video RAM generated by
Playstation 1 emulators.  (Alternatively it can also view raw binary data.)
It currently supports ePSXe, PCSX 1.5, PCSX 1.9 and pSX savestates.



Requirements

- Windows-like environment (tested: 32-bit WinXP SP3, 32-bit Ubuntu 9.10 + Wine)
- 800 x 600 display resolution
- keyboard (mouse recommended)
-  2 MB of free HDD space
- 20 MB of free RAM



Background

PVV displays the PSX framebuffer, which is a RAM area of 1024 KB in size.  It
contains two frames (most often 320x224 or 512x224) and all the bitmaps required
to render a frame.

Pixels can have a bit depth of 4, 8, 15 or 24 bits (this corresponds to buttons
6, 7, 8 and 9 in PVV's toolbar).

In 4/8-bit bitmaps, each pixel value is an index into a 16/256-color palette,
which is also stored somewhere in the framebuffer.  In 15/24-bit bitmaps the
color values are stored directly in the pixel value.



Getting Started

PVV doesn't need to be installed, but you should extract all files into a new
folder if they're in a ZIP file.  (This is because of the INI file, see below.)

source\                 program source; can be compiled with Delphi 2009
PVV.exe                 main program file
PVV.ini                 created by PVV to store the program state for next start
psx_serials.txt         list of serials and game titles; not required, but makes
                        identifying savestates easier; tab-separated columns so
                        it can for example be loaded into Excel
readme.txt              this file

Programs also receive, among other things, the command line they were started
with.  When one is started by dragging files onto its icon, Windows adds the
names of these files onto the command line.
PVV looks if there are such parameters, and loads the file specified by the
first one.  (Remember, when you are using a CLI, that parameters with spaces in
them must be enclosed with double quotes.)  This also means that you can "Open
With" emulator savestates with PVV.

If you haven't done so, PVV's main window appears with two areas with black
rectangles, a toolbar, and a statusbar.  Click the leftmost button to select
the input source.  The first page displays emulator savestates, and the second
page displays info about the currently loaded input.  After loading, the data is
displayed in the main window.



Usage

If you are interested only in a small part of the input, switch to the "change
output selection" mode (by clicking the toolbar button with the red rectangle)
and click onto the upper area.  The left mouse button sets the red rectangle's
top-left point and the right mouse button sets the bottom-right point.  You'll
see the lower area's size shrinking and growing as you do so.

For 4/8-bit graphics you'll also need to select a palette.  Switch to the
"change palette selection" mode (the button with the green rectangle) and select
the palette with the left mouse button.  Note that the "4 bpp" or the "8 bpp"
button should be selected to see the palette and the palette grid.

The current input and output bitmaps can be saved by pressing the corresponding
button in the toolbar.  The preview and the palette can be saved by clicking the
pictures; you can choose between several palette formats.



Advanced Usage


main window:

- The        cursor keys change the position of the output  selection.
  The numpad cursor keys change the position of the palette selection.
  Holding Ctrl changes in 64-pixel steps.

- Holding Shift while pressing the cursor keys changes the size of the output
  selection.  Holding Ctrl changes in 64-pixel steps.

- Pressing the Minus and Plus keys on the numpad changes the offset in pixel
  steps (2 bytes).  Pressing PageUp and PageDown changes the offset by an entire
  window.

- When positioning the palette selection, the horizontal position is adjusted to
  16-pixel steps unless the Alt key is pressed.

- The statusbar displays the current zoom modes, file offset, and input/output
  selection coordinates.

- Pressing F3 is equal to clicking the "select input source" button.
  Pressing F5 is equal to clicking the "reload input file"   button.
  Pressing F2 is equal to clicking the "save output bitmap"  button.
  Pressing Esc closes the active window (including the main window).

- When the "input/output scroll mode" button is selected, the input/output
  window can be dragged with the mouse.  When the "input/output zoom mode"
  button is selected, the input/output areas can be zoomed in or out with the
  mouse buttons.

- Clicking the middle mouse button (or the mouse wheel on wheel mice) on the
  input or output areas switches to the next mode.  Clicking while holding Shift
  switches to the previous mode.

- Clicking the right mouse button in "change palette selection" mode or in
  "input/output scroll mode" switches to the next mode.

- Scrolling with the mouse wheel over the input/output area changes the vertical
  position.  Scrolling while holding Shift changes the horizontal position.

- Scrolling the mouse wheel over a control (e.g. the files list in the "input
  source" window) works even if the control's window doesn't have the focus.


"input source" window:

- Pressing up/down in the slot list when the first/last slot is selected
  automatically selects the previous/next file and the appropriate slot.

- The functionality of F2, F3, F5, the cursor keys, the numpad cursor keys,
  numpad Minus and Plus, PageUp and PageDown still works like on the main window
  except where it's already used by the focused control.

- Pressing Alt+1 shows the "files" page; Alt+2 shows the "current input" page.

- In the path field, when the length of the text is only one character it is
  automatically expanded to a full drive path.  Pressing the Return key opens
  the directory browser.
- In the file selection, pressing the CursorLeft key is equal to pressing
  PageUp.  Pressing CursorRight switches to the slot selection (if enabled).
- In the slot selection, pressing the CursorRight key is equal to pressing
  PageDown.  Pressing CursorLeft switches to the file selection.

- Selecting an item in the "savestate block data" sets the offset to that value.
- Pressing CursorUp and CursorDown in the offset field changes the offset.



PCSX 1.5 Savestates

The filename of PCSX 1.5 savestates doesn't always contain the game's serial, so
the "input source" window doesn't display extended info for these files.



pSX Savestates

The location of the VRAM area is not fixed (but it's somewhere in the "UPG"
block).  Increase the offset by holding the numpad Plus key until the content of
the framebuffer appears to be aligned correctly.



Other OSes (e.g. via Wine)

INI files created on Windows might not be compatible with PVV running on other
OSes due to the different path delimiters and structures.  Use a separate copy
of PVV for each OS.

Known issues:

- Loading ePSXe savestate previews (*.pic files) is broken for some reason.

- Pressing Alt+F4 only closes the active window, not the entire program.

- ClipCursor calls are not supported by Wine, which means that the mouse cursor
  isn't restricted when dragging the input/output areas.



Deinstallation

Since PVV doesn't require an installation, deinstallation is as simple as
deleting all related files. PVV doesn't use the registry, and the only files it
creates are PVV.ini and (when prompted by the user) the input/output and palette
files.



Version History

2010-02-26    version 1.0  [creaothceann]

2007-??-??    some quickly hacked-together versions (0.1 to 0.3)  [creaothceann]


